home *** CD-ROM | disk | FTP | other *** search
/ Planet Source Code Jumbo …e CD Visual Basic 1 to 7 / 1_2002.ISO / Data / Zips / CODE_UPLOAD81177242000.psc / Projects / VB / Task List / docAddIn.dob (.txt) next >
Encoding:
Visual Basic Form  |  2000-07-23  |  11.8 KB  |  346 lines

  1. VERSION 5.00
  2. Object = "{831FDD16-0C5C-11D2-A9FC-0000F8754DA1}#2.0#0"; "MSCOMCTL.OCX"
  3. Begin VB.UserDocument docAddIn 
  4.    BackColor       =   &H80000004&
  5.    ClientHeight    =   3825
  6.    ClientLeft      =   2190
  7.    ClientTop       =   1800
  8.    ClientWidth     =   10875
  9.    ContinuousScroll=   0   'False
  10.    HScrollSmallChange=   225
  11.    Icon            =   "docAddIn.dox":0000
  12.    ScaleHeight     =   3825
  13.    ScaleWidth      =   10875
  14.    ScrollBars      =   0  'None
  15.    VScrollSmallChange=   225
  16.    Begin MSComctlLib.ListView lstTasks 
  17.       Height          =   3750
  18.       Left            =   30
  19.       TabIndex        =   0
  20.       Top             =   30
  21.       Width           =   10785
  22.       _ExtentX        =   19024
  23.       _ExtentY        =   6615
  24.       SortKey         =   1
  25.       View            =   3
  26.       Sorted          =   -1  'True
  27.       LabelWrap       =   -1  'True
  28.       HideSelection   =   0   'False
  29.       Checkboxes      =   -1  'True
  30.       GridLines       =   -1  'True
  31.       _Version        =   393217
  32.       ForeColor       =   -2147483640
  33.       BackColor       =   -2147483643
  34.       BorderStyle     =   1
  35.       Appearance      =   1
  36.       BeginProperty Font {0BE35203-8F91-11CE-9DE3-00AA004BB851} 
  37.          Name            =   "Verdana"
  38.          Size            =   8.25
  39.          Charset         =   0
  40.          Weight          =   400
  41.          Underline       =   0   'False
  42.          Italic          =   0   'False
  43.          Strikethrough   =   0   'False
  44.       EndProperty
  45.       NumItems        =   3
  46.       BeginProperty ColumnHeader(1) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  47.          Text            =   "Task"
  48.          Object.Width           =   5365
  49.       EndProperty
  50.       BeginProperty ColumnHeader(2) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  51.          SubItemIndex    =   1
  52.          Text            =   "Added"
  53.          Object.Width           =   2540
  54.       EndProperty
  55.       BeginProperty ColumnHeader(3) {BDD1F052-858B-11D1-B16A-00C0F0283628} 
  56.          SubItemIndex    =   2
  57.          Text            =   "Completed"
  58.          Object.Width           =   2540
  59.       EndProperty
  60.    End
  61.    Begin VB.Menu mnuMenu 
  62.       Caption         =   "Menu"
  63.       Visible         =   0   'False
  64.       Begin VB.Menu mnuNew 
  65.          Caption         =   "New Task"
  66.       End
  67.       Begin VB.Menu mnuDelete 
  68.          Caption         =   "Delete Task"
  69.       End
  70.       Begin VB.Menu mnuView 
  71.          Caption         =   "View"
  72.       End
  73.       Begin VB.Menu mnuSep 
  74.          Caption         =   "-"
  75.       End
  76.       Begin VB.Menu mnuAbout 
  77.          Caption         =   "About"
  78.       End
  79.    End
  80. Attribute VB_Name = "docAddIn"
  81. Attribute VB_GlobalNameSpace = False
  82. Attribute VB_Creatable = True
  83. Attribute VB_PredeclaredId = False
  84. Attribute VB_Exposed = True
  85. Option Explicit
  86. Public WithEvents evtVBProjects As VBProjectsEvents
  87. Attribute evtVBProjects.VB_VarHelpID = -1
  88. Public WithEvents evtVBFiles As FileControlEvents
  89. Attribute evtVBFiles.VB_VarHelpID = -1
  90. Private mintCurrSelect As Integer
  91. Private Sub evtVBFiles_AfterWriteFile(ByVal VBProject As VBIDE.VBProject, ByVal FileType As VBIDE.vbext_FileType, ByVal FileName As String, ByVal Result As Integer)
  92.    Dim strPath As String
  93.    On Error GoTo evtVBFiles_AfterWriteFile_Error
  94.    If FileType = vbext_ft_Project Then
  95.       If Len(gstrTaskFile) > 0 Then
  96.          WriteTasks
  97.       Else
  98.          GetTaskFile FileName
  99.          WriteTasks
  100.       End If
  101.    End If
  102. Exit Sub
  103. evtVBFiles_AfterWriteFile_Error:
  104.    DoError "docAddIn", "evtVBFiles_AfterWriteFile", Err
  105. End Sub
  106. Private Sub evtVBProjects_ItemActivated(ByVal VBProject As VBIDE.VBProject)
  107.    Dim strPath As String
  108.    '--Save the current task list
  109.    WriteTasks
  110.    '--Retrieve the tasks for the newly active project
  111.    strPath = gobjVBInstance.ActiveVBProject.FileName
  112.    GetTaskFile strPath
  113. End Sub
  114. Private Sub evtVBProjects_ItemAdded(ByVal VBProject As VBIDE.VBProject)
  115.    Dim strPath As String
  116.    strPath = VBProject.FileName
  117.    If Len(strPath) = 0 Then
  118.       Exit Sub
  119.    End If
  120.    If Len(gstrTaskFile) > 0 Then
  121.       WriteTasks
  122.    Else
  123.       GetTaskFile strPath
  124.    End If
  125. End Sub
  126. Private Sub evtVBProjects_ItemRemoved(ByVal VBProject As VBIDE.VBProject)
  127.    '--Save the current tasks and clear the list
  128.    WriteTasks
  129.    gstrTaskFile = vbNullString
  130.    lstTasks.ListItems.Clear
  131. End Sub
  132. Private Sub lstTasks_Click()
  133.    On Error GoTo lstTasks_Click_Error
  134.    If gblMouseClick = vbRightButton Then
  135.       UserDocument.PopupMenu mnuMenu
  136.    End If
  137.    Exit Sub
  138. lstTasks_Click_Error:
  139.    DoError "docAddIn", "lstTasks_Click", Err
  140. End Sub
  141. Private Sub lstTasks_ColumnClick(ByVal ColumnHeader As MSComctlLib.ColumnHeader)
  142.    lstTasks.SortKey = ColumnHeader.Index - 1
  143.    lstTasks.Sorted = True
  144.    If lstTasks.SortOrder = lvwDescending Then
  145.       lstTasks.SortOrder = lvwAscending
  146.    Else
  147.       lstTasks.SortOrder = lvwDescending
  148.    End If
  149.    lstTasks.Refresh
  150. End Sub
  151. Private Sub lstTasks_DblClick()
  152.    On Error GoTo lstTasks_DblClick_Error
  153.    lstTasks.ListItems.Add
  154.    lstTasks.StartLabelEdit
  155.    lstTasks.ListItems.Item(1).SubItems(1) = Format(Now, "mm/dd/yyyy")
  156. lstTasks_DblClick_Error:
  157.    DoError "docAddIn", "lstTasks_DblClick", Err
  158. End Sub
  159. Private Sub lstTasks_ItemCheck(ByVal Item As MSComctlLib.ListItem)
  160.    On Error GoTo lstTasks_ItemCheck_Error
  161.    If Item.Checked = True Then
  162.       Item.ForeColor = vbGrayText
  163.       Item.SubItems(2) = Format(Now, "mm/dd/yyyy")
  164.    Else
  165.       Item.ForeColor = vbBlack
  166.       Item.SubItems(2) = ""
  167.    End If
  168. lstTasks_ItemCheck_Error:
  169.     DoError "docAddIn", "lstTasks_ItemCheck", Err
  170. End Sub
  171. Private Sub lstTasks_ItemClick(ByVal Item As MSComctlLib.ListItem)
  172.    mintCurrSelect = Item.Index
  173. End Sub
  174. Private Sub lstTasks_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
  175.    On Error GoTo lstTasks_MouseDown_Error
  176.    gblMouseClick = Button
  177.    Exit Sub
  178. lstTasks_MouseDown_Error:
  179.    DoError "docAddIn", "lstTasks_MouseDown", Err
  180. End Sub
  181. Private Sub mnuView_Click()
  182.    Load frmView
  183.    With frmView
  184.       .InitForm lstTasks, gobjVBInstance.ActiveVBProject.Description
  185.       .Show
  186.    End With
  187. End Sub
  188. Private Sub mnuAbout_Click()
  189.    frmAbout.Show
  190. End Sub
  191. Private Sub mnuNew_Click()
  192.    Dim strTask As String
  193.    On Error GoTo mnuNew_Click_Error
  194.    strTask = InputBox("Enter new Task:", "New Task")
  195.    lstTasks.ListItems.Add , , strTask
  196.    lstTasks.ListItems.Item(1).SubItems(1) = Format(Now, "mm/dd/yyyy")
  197.    Exit Sub
  198. mnuNew_Click_Error:
  199.    DoError "docAddIn", "mnuNew_Click", Err
  200. End Sub
  201. Private Sub UserDocument_Initialize()
  202.    Dim strPath As String
  203.    On Error GoTo UserDocument_Initialize_Error
  204.    Set Me.evtVBProjects = gobjVBInstance.Events.VBProjectsEvents
  205.    Set Me.evtVBFiles = gobjVBInstance.Events.FileControlEvents(Nothing)
  206.    If Not (gobjVBInstance Is Nothing) Then
  207.       If gobjVBInstance.VBProjects.Count = 0 Then
  208.          Exit Sub
  209.       Else
  210.          strPath = gobjVBInstance.ActiveVBProject.FileName
  211.          GetTaskFile strPath
  212.       End If
  213.    End If
  214.    Exit Sub
  215. UserDocument_Initialize_Error:
  216.     DoError "docAddIn", "UserDocument - Initialize", Err
  217. End Sub
  218. Private Sub mnuDelete_Click()
  219.    On Error GoTo mnuDelete_Error
  220.    If mintCurrSelect <> 0 Then
  221.       If MsgBox("Delete task: " & lstTasks.ListItems(lstTasks.SelectedItem.Index).Text & "?", _
  222.                 vbQuestion + vbYesNo + vbDefaultButton1) = vbYes Then
  223.          lstTasks.ListItems.Remove (mintCurrSelect)
  224.          WriteTasks
  225.       End If
  226.    End If
  227.    Exit Sub
  228. mnuDelete_Error:
  229.    DoError "docAddIn", "mnuDelete", Err
  230. End Sub
  231. Public Sub LoadTasks()
  232.    Dim lngCount As Long
  233.    Dim lngIndex As Long
  234.    Dim lstItem As ListItem
  235.    Dim strBuffer As String
  236.    Dim strSDesc As String
  237.    Dim strSAdd As String
  238.    Dim strSEnd As String
  239.    On Error GoTo LoadTasks_Error
  240.    lstTasks.ListItems.Clear
  241.    lngCount = CLng(GetFromIni("Tasks", "Count", gstrTaskFile))
  242.    For lngIndex = 1 To lngCount
  243.       strBuffer = GetFromIni("tasks", "task" & lngIndex, gstrTaskFile)
  244.       Set lstItem = lstTasks.ListItems.Add
  245.       If Mid(strBuffer, 1, 1) = "*" Then
  246.          lstItem.Checked = True
  247.          lstItem.ForeColor = vbGrayText
  248.          strBuffer = Mid(strBuffer, 2)
  249.          strSDesc = GetToken(strBuffer, "|")
  250.          strSAdd = GetToken(strBuffer, "|")
  251.          strSEnd = strBuffer
  252.          lstItem.Text = strSDesc
  253.          
  254.          lstItem.SubItems(1) = strSAdd
  255.          lstItem.SubItems(2) = strSEnd
  256.       Else
  257.          strSDesc = GetToken(strBuffer, "|")
  258.          strSAdd = GetToken(strBuffer, "|")
  259.          strSEnd = strBuffer
  260.          lstItem.Text = strSDesc
  261.          
  262.          lstItem.SubItems(1) = strSAdd
  263.          lstItem.SubItems(2) = strSEnd
  264.       End If
  265.    Next lngIndex
  266.    lstTasks.SortOrder = lvwAscending
  267.    lstTasks.SortKey = 1
  268.    lstTasks.Sorted = True
  269. LoadTasks_Error:
  270.    DoError "docAddIn", "LoadTasks", Err
  271. End Sub
  272. Function StripNameFromPath(ByVal pstrSearchstring As String) As String
  273.    Dim strTest As String
  274.    Dim intLastSlashPos As Integer
  275.    Dim i As Integer
  276.    Dim intMyPos As Integer
  277.    Dim strSearchchar As String
  278.    On Error GoTo StripNameFromPath_Error
  279.    strTest = "NULL"
  280.    strSearchchar = "\"
  281.    For i = 1 To Len(pstrSearchstring)
  282.       intMyPos = InStr(i, pstrSearchstring, strSearchchar, 1)
  283.       If intMyPos = 0 Then
  284.          If strTest = "NULL" Then
  285.             strTest = Str(i)
  286.          End If
  287.       End If
  288.    Next i
  289.    intLastSlashPos = Val(strTest)
  290.    StripNameFromPath = Mid(pstrSearchstring, 1, intLastSlashPos - 1)
  291.    Exit Function
  292. StripNameFromPath_Error:
  293.    DoError "docAddIn", "StripNameFromPath", Err
  294. End Function
  295. Private Sub UserDocument_Resize()
  296.    On Error Resume Next
  297.    lstTasks.Height = UserDocument.Height - 75
  298.    lstTasks.Width = UserDocument.Width - 90
  299.    lstTasks.ColumnHeaders(1).Width = lstTasks.Width - 1440 - 1440
  300. End Sub
  301. Private Sub GetTaskFile(strProjectPath As String)
  302. '--Loads the task file if it doesn't exits, otherwise
  303. '  creates a new one.
  304.    Dim intFileNum As Integer
  305.    On Error GoTo GetTaskFile_Error
  306.    strProjectPath = StripNameFromPath(strProjectPath)
  307.    gstrTaskFile = strProjectPath & TASK_FILE_NAME
  308.    If FileExists(gstrTaskFile) = False Then
  309.       intFileNum = FreeFile
  310.       Open gstrTaskFile For Output As #intFileNum
  311.       Print #intFileNum, "[Tasks]"
  312.       Print #intFileNum, "Count=0"
  313.       Close #intFileNum
  314.    Else
  315.       LoadTasks
  316.    End If
  317.    Exit Sub
  318. GetTaskFile_Error:
  319.    DoError "docAddIn", "GetTaskFile", Err
  320. End Sub
  321. Private Sub WriteTasks()
  322.    Dim lngCount As Long
  323.    Dim lngIndex As Long
  324.    Dim strBuffer As String
  325.    On Error GoTo WriteTasks_Error
  326.    lngCount = lstTasks.ListItems.Count
  327.    WriteToIni "Tasks", "Count", CStr(lngCount), gstrTaskFile
  328.    For lngIndex = 1 To lngCount
  329.       If lstTasks.ListItems.Item(lngIndex).Checked Then
  330.          WriteToIni "Tasks", "Task" & lngIndex, "*" _
  331.                   & lstTasks.ListItems.Item(lngIndex).Text _
  332.                   & "|" & lstTasks.ListItems.Item(lngIndex).SubItems(1) _
  333.                   & "|" & lstTasks.ListItems.Item(lngIndex).SubItems(2), _
  334.                   gstrTaskFile
  335.       Else
  336.          WriteToIni "Tasks", "Task" & lngIndex, lstTasks.ListItems.Item(lngIndex).Text _
  337.                   & "|" & lstTasks.ListItems.Item(lngIndex).SubItems(1) _
  338.                   & "|" & lstTasks.ListItems.Item(lngIndex).SubItems(2), _
  339.                   gstrTaskFile
  340.       End If
  341.    Next lngIndex
  342.    Exit Sub
  343. WriteTasks_Error:
  344.    DoError "docAddIn", "WriteTasks", Err
  345. End Sub
  346.